accel23 2.2.0
Loading...
Searching...
No Matches
accel23.h File Reference

This file contains API for Accel 23 Click Driver. More...

#include "drv_digital_out.h"
#include "drv_digital_in.h"
#include "drv_i2c_master.h"
#include "drv_spi_master.h"
#include "spi_specifics.h"

Go to the source code of this file.

Data Structures

struct  accel23_s
 Accel 23 Click context object. More...
struct  accel23_cfg_t
 Accel 23 Click configuration object. More...
struct  accel23_axes_t
 Accel 23 Click axes data structure. More...
struct  accel23_data_t
 Accel 23 Click data structure. More...

Macros

#define ACCEL23_REG_EXT_CLK_CFG   0x08
 Accel 23 description register.
#define ACCEL23_REG_PIN_CTRL   0x0C
#define ACCEL23_REG_WAKE_UP_DUR_EXT   0x0E
#define ACCEL23_REG_WHO_AM_I   0x0F
#define ACCEL23_REG_CTRL1   0x10
#define ACCEL23_REG_CTRL2   0x11
#define ACCEL23_REG_CTRL3   0x12
#define ACCEL23_REG_CTRL4   0x13
#define ACCEL23_REG_CTRL5   0x14
#define ACCEL23_REG_FIFO_CTRL   0x15
#define ACCEL23_REG_FIFO_WTM   0x16
#define ACCEL23_REG_INTERRUPT_CFG   0x17
#define ACCEL23_REG_SIXD   0x18
#define ACCEL23_REG_WAKE_UP_THS   0x1C
#define ACCEL23_REG_WAKE_UP_DUR   0x1D
#define ACCEL23_REG_FREE_FALL   0x1E
#define ACCEL23_REG_MD1_CFG   0x1F
#define ACCEL23_REG_MD2_CFG   0x20
#define ACCEL23_REG_WAKE_UP_SRC   0x21
#define ACCEL23_REG_TAP_SRC   0x22
#define ACCEL23_REG_SIXD_SRC   0x23
#define ACCEL23_REG_ALL_INT_SRC   0x24
#define ACCEL23_REG_STATUS   0x25
#define ACCEL23_REG_FIFO_STATUS1   0x26
#define ACCEL23_REG_FIFO_STATUS2   0x27
#define ACCEL23_REG_OUT_X_L   0x28
#define ACCEL23_REG_OUT_X_H   0x29
#define ACCEL23_REG_OUT_Y_L   0x2A
#define ACCEL23_REG_OUT_Y_H   0x2B
#define ACCEL23_REG_OUT_Z_L   0x2C
#define ACCEL23_REG_OUT_Z_H   0x2D
#define ACCEL23_REG_OUT_T_AH_QVAR_L   0x2E
#define ACCEL23_REG_OUT_T_AH_QVAR_H   0x2F
#define ACCEL23_REG_AH_QVAR_CFG   0x31
#define ACCEL23_REG_SELF_TEST   0x32
#define ACCEL23_REG_I3C_IF_CTRL   0x33
#define ACCEL23_REG_EMB_FUNC_STATUS_MAINPAGE   0x34
#define ACCEL23_REG_FSM_STATUS_MAINPAGE   0x35
#define ACCEL23_REG_MLC_STATUS_MAINPAGE   0x36
#define ACCEL23_REG_SLEEP   0x3D
#define ACCEL23_REG_EN_DEVICE_CONFIG   0x3E
#define ACCEL23_REG_FUNC_CFG_ACCESS   0x3F
#define ACCEL23_REG_FIFO_DATA_OUT_TAG   0x40
#define ACCEL23_REG_FIFO_DATA_OUT_X_L   0x41
#define ACCEL23_REG_FIFO_DATA_OUT_X_H   0x42
#define ACCEL23_REG_FIFO_DATA_OUT_Y_L   0x43
#define ACCEL23_REG_FIFO_DATA_OUT_Y_H   0x44
#define ACCEL23_REG_FIFO_DATA_OUT_Z_L   0x45
#define ACCEL23_REG_FIFO_DATA_OUT_Z_H   0x46
#define ACCEL23_REG_FIFO_BATCH_DEC   0x47
#define ACCEL23_REG_TAP_CFG0   0x6F
#define ACCEL23_REG_TAP_CFG1   0x70
#define ACCEL23_REG_TAP_CFG2   0x71
#define ACCEL23_REG_TAP_CFG3   0x72
#define ACCEL23_REG_TAP_CFG4   0x73
#define ACCEL23_REG_TAP_CFG5   0x74
#define ACCEL23_REG_TAP_CFG6   0x75
#define ACCEL23_REG_TIMESTAMP0   0x7A
#define ACCEL23_REG_TIMESTAMP1   0x7B
#define ACCEL23_REG_TIMESTAMP2   0x7C
#define ACCEL23_REG_TIMESTAMP3   0x7D
#define ACCEL23_WHO_AM_I   0x47
 Accel 23 WHO_AM_I register setting.
#define ACCEL23_CTRL1_SMART_POWER_EN   0x80
 Accel 23 CTRL1 register setting.
#define ACCEL23_CTRL1_INT1_ON_RES   0x40
#define ACCEL23_CTRL1_SW_RESET   0x20
#define ACCEL23_CTRL1_IF_ADD_INC   0x10
#define ACCEL23_CTRL1_DRDY_PULSED   0x08
#define ACCEL23_CTRL1_WU_X_EN   0x04
#define ACCEL23_CTRL1_WU_Y_EN   0x02
#define ACCEL23_CTRL1_WU_Z_EN   0x01
#define ACCEL23_CTRL5_ODR_PWR_DOWN   0x00
 Accel 23 CTRL5 register setting.
#define ACCEL23_CTRL5_ODR_ULP_1_6_HZ   0x10
#define ACCEL23_CTRL5_ODR_ULP_3_HZ   0x20
#define ACCEL23_CTRL5_ODR_ULP_25_HZ   0x30
#define ACCEL23_CTRL5_ODR_6_HZ   0x40
#define ACCEL23_CTRL5_ODR_12_5_HZ   0x50
#define ACCEL23_CTRL5_ODR_25_HZ   0x60
#define ACCEL23_CTRL5_ODR_50_HZ   0x70
#define ACCEL23_CTRL5_ODR_100_HZ   0x80
#define ACCEL23_CTRL5_ODR_200_HZ   0x90
#define ACCEL23_CTRL5_ODR_400_HZ   0xA0
#define ACCEL23_CTRL5_ODR_800_HZ   0xB0
#define ACCEL23_CTRL5_ODR_ONE_SHOT_INT2   0xE0
#define ACCEL23_CTRL5_ODR_ONE_SHOT_IFACE   0xF0
#define ACCEL23_CTRL5_ODR_MASK   0xF0
#define ACCEL23_CTRL5_BW_ODR_2   0x00
#define ACCEL23_CTRL5_BW_ODR_4   0x04
#define ACCEL23_CTRL5_BW_ODR_8   0x08
#define ACCEL23_CTRL5_BW_ODR_16   0x0C
#define ACCEL23_CTRL5_BW_MASK   0x0C
#define ACCEL23_CTRL5_FS_2_G   0x00
#define ACCEL23_CTRL5_FS_4_G   0x01
#define ACCEL23_CTRL5_FS_8_G   0x02
#define ACCEL23_CTRL5_FS_16_G   0x03
#define ACCEL23_CTRL5_FS_MASK   0x03
#define ACCEL23_STATUS_INT_GLOBAL   0x20
 Accel 23 STATUS register setting.
#define ACCEL23_STATUS_DRDY   0x01
#define ACCEL23_EN_DEVICE_CONFIG_SOFT_PD   0x01
 Accel 23 EN_DEVICE_CONFIG register setting.
#define ACCEL23_ODR_PWR_DOWN   0
 Accel 23 output data rate setting.
#define ACCEL23_ODR_ULP_1_6_HZ   1
#define ACCEL23_ODR_ULP_3_HZ   2
#define ACCEL23_ODR_ULP_25_HZ   3
#define ACCEL23_ODR_6_HZ   4
#define ACCEL23_ODR_12_5_HZ   5
#define ACCEL23_ODR_25_HZ   6
#define ACCEL23_ODR_50_HZ   7
#define ACCEL23_ODR_100_HZ   8
#define ACCEL23_ODR_200_HZ   9
#define ACCEL23_ODR_400_HZ   10
#define ACCEL23_ODR_800_HZ   11
#define ACCEL23_ODR_ONE_SHOT_INT2   14
#define ACCEL23_ODR_ONE_SHOT_IFACE   15
#define ACCEL23_FS_2G   0
 Accel 23 full scale setting.
#define ACCEL23_FS_4G   1
#define ACCEL23_FS_8G   2
#define ACCEL23_FS_16G   3
#define ACCEL23_ACCEL_SENS_G_PER_LSB   0.000061
 Accel 23 sensitivity setting.
#define ACCEL23_TEMP_SENS_C_PER_LSB   0.045
#define ACCEL23_TEMP_OFFSET   25.0
#define ACCEL23_DEVICE_ADDRESS_0   0x18
 Accel 23 device address setting.
#define ACCEL23_DEVICE_ADDRESS_1   0x19
#define ACCEL23_SET_DATA_SAMPLE_EDGE   SET_SPI_DATA_SAMPLE_EDGE
 Data sample selection.
#define ACCEL23_SET_DATA_SAMPLE_MIDDLE   SET_SPI_DATA_SAMPLE_MIDDLE
#define ACCEL23_MAP_MIKROBUS(cfg, mikrobus)
 MikroBUS pin mapping.

Typedefs

typedef err_t(* accel23_master_io_t) (struct accel23_s *, uint8_t, uint8_t *, uint8_t)
typedef struct accel23_s accel23_t
 Accel 23 Click context object.

Enumerations

enum  accel23_drv_t { ACCEL23_DRV_SEL_SPI , ACCEL23_DRV_SEL_I2C }
 Accel 23 Click driver selector. More...
enum  accel23_return_value_t { ACCEL23_OK = 0 , ACCEL23_ERROR = -1 , ACCEL23_NO_DRDY = -2 }
 Accel 23 Click return value data. More...

Functions

void accel23_cfg_setup (accel23_cfg_t *cfg)
 Accel 23 configuration object setup function.
void accel23_drv_interface_sel (accel23_cfg_t *cfg, accel23_drv_t drv_sel)
 Accel 23 driver interface setup function.
err_t accel23_init (accel23_t *ctx, accel23_cfg_t *cfg)
 Accel 23 initialization function.
err_t accel23_default_cfg (accel23_t *ctx)
 Accel 23 default configuration function.
err_t accel23_write_reg (accel23_t *ctx, uint8_t reg, uint8_t data_in)
 Accel 23 write register function.
err_t accel23_write_regs (accel23_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
 Accel 23 write registers function.
err_t accel23_read_reg (accel23_t *ctx, uint8_t reg, uint8_t *data_out)
 Accel 23 read register function.
err_t accel23_read_regs (accel23_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
 Accel 23 read registers function.
void accel23_set_eck_pin (accel23_t *ctx, uint8_t state)
 Accel 23 set ECK pin function.
uint8_t accel23_get_it2_pin (accel23_t *ctx)
 Accel 23 get IT2 pin function.
err_t accel23_check_communication (accel23_t *ctx)
 Accel 23 check communication function.
err_t accel23_spi_wake_up (accel23_t *ctx)
 Accel 23 SPI wake-up function.
err_t accel23_sw_reset (accel23_t *ctx)
 Accel 23 software reset function.
err_t accel23_set_odr (accel23_t *ctx, uint8_t odr)
 Accel 23 set output data rate function.
err_t accel23_set_fsr (accel23_t *ctx, uint8_t fsr)
 Accel 23 set full-scale range function.
err_t accel23_check_accel_drdy (accel23_t *ctx)
 Accel 23 check data ready function.
err_t accel23_get_accel (accel23_t *ctx, accel23_axes_t *accel)
 Accel 23 get acceleration function.
err_t accel23_get_temp (accel23_t *ctx, float *temp)
 Accel 23 get temperature function.
err_t accel23_get_data (accel23_t *ctx, accel23_data_t *data_out)
 Accel 23 get all sensor data function.

Detailed Description

This file contains API for Accel 23 Click Driver.

Typedef Documentation

◆ accel23_master_io_t

typedef err_t(* accel23_master_io_t) (struct accel23_s *, uint8_t, uint8_t *, uint8_t)

Driver serial interface.

◆ accel23_t

typedef struct accel23_s accel23_t

Accel 23 Click context object.

Context object definition of Accel 23 Click driver.

Enumeration Type Documentation

◆ accel23_drv_t

Accel 23 Click driver selector.

Selects target driver interface of Accel 23 Click driver.

Enumerator
ACCEL23_DRV_SEL_SPI 

SPI driver descriptor.

ACCEL23_DRV_SEL_I2C 

I2C driver descriptor.

◆ accel23_return_value_t

Accel 23 Click return value data.

Predefined enum values for driver return values.

Enumerator
ACCEL23_OK 
ACCEL23_ERROR 
ACCEL23_NO_DRDY